package com.lost.octopus.es.helper.constant;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 定义了字段存储类型，用于构建Mapping和查询方式
 * 写入文档的时候，索引不存在，会自动创建索引， 无需手动创建，
 * ES会根据内容推断字段的类型，推断会不准确，可能造成某些功能无法使用，例如 范围查询。
 * @author zhangbh
 **/
@Getter
@AllArgsConstructor
public enum EsFieldMappingType {

    /**
     * 关键字，不会进行分词，也兼容text
     */
    type_keyword(EsMatchType.wildcard, "keyword"),
    /**
     * 自动分词
     */
    type_text(EsMatchType.term, "text"),
    /**
     * long类型
     */
    type_long(EsMatchType.term, "long"),
    /**
     * date类型
     */
    type_date(EsMatchType.term, "date"),
    /**
     * float类型
     */
    type_float(EsMatchType.term, "float"),

    /**
     * boolean类型
     */
    type_boolean(EsMatchType.term, "boolean"),
    ;

    private final EsMatchType defaultFieldEqType;
    /**
     * es的mapping类型
     */
    private final String mappingType;
}
